#同样的函数，传入不同的对象，得到不同的状态
#多态作用在继承关系上
#以父类做定义声明
#以子类完成实际工作
#用以获得同意行为，不同状态

class Animoal:
    def speak(self):
        pass

class Cat(Animoal):
    def speak(self):
        print("喵喵喵")

class Dog(Animoal):
    def speak(self):
        print("汪汪汪")

def make_noise(animol :Animoal):
    animol.speak()

cat = Cat()
dog = Dog()

make_noise(cat)
make_noise(dog)